#ifndef __TAIJI_H__
#define __TAIJI_H__

#include <linux/fb.h>

// 声明LCD相关全局变量为extern，使其在其他文件中可访问
extern struct fb_var_screeninfo lcd_info;
extern int lcd_fd;
extern int *lcd_fp;

// 双缓冲相关变量（仅用于重玩刷新页面）
extern int *back_buffer;

// 初始化lcd屏幕
void lcd_init();

// 初始化后缓冲区
void back_buffer_init();

// 释放后缓冲区
void back_buffer_free();

// 交换前后缓冲区（一次性将后缓冲区内容复制到屏幕）
void swap_buffer();

// 准备双缓冲（用于重玩刷新页面）
void prepare_double_buffer();

// 在后缓冲区绘制背景（用于重玩刷新页面）
void draw_background_buffer(int color);

// 在后缓冲区绘制图片（用于重玩刷新页面）
void draw_picture_buffer(int posx, int posy, const char* pic_path);

// 在后缓冲区绘制棋子（用于重玩刷新页面）
void draw_round_buffer(int x, int y, int n, int color);

//显示单个像素点（直接操作屏幕）
void draw_pixel(int x,int y,int color);

//设置全屏背景颜色（直接操作屏幕）
void draw_background(int color);

//画左半圆,x、y为圆心（直接操作屏幕）
void draw_round1(int x,int y,int n,int color);

//画右半圆,x、y为圆心（直接操作屏幕）
void draw_round2(int x,int y,int n,int color);

//画图片（直接操作屏幕）
void draw_picture(int posx,int posy,const char* pic_path);

//画棋盘
void checkerboard();

#endif